package ltd.hanamaki.study.iotest;

import java.io.*;

public class IoDemoUtf8 {

    public static void main(String[] args) throws IOException {

        IoDemoUtf8 ioDemoUtf8 = new IoDemoUtf8();
        ioDemoUtf8.io_test();
        ioDemoUtf8.io_input_test();
    }

    /* 编写一个方法 ，可以将 代码中的 数据 保存至本地文件中 */
    public void io_test() {
        /* 使用io将内容写出 需要用到 输出流 */
        /* 1. 想要将内容输出到哪一个目录中 */
        /* file 代表的是当前路径下的文件信息 */
        File file = new File("d:\\test-utf8.ini");
//        file.getAbsolutePath()/* 获取文件的绝对路径 */
        /* 2. 如何将文件内容写出 */
        FileOutputStream fileOutputStream = null;
        OutputStreamWriter outputStreamWriter = null;
        try {
            fileOutputStream = new FileOutputStream(file);
            /* 修改 文件内容写出时的字符乱码问题 */
            outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
            outputStreamWriter.append("画卷").append("Hanamaki");
        } catch (FileNotFoundException | UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                outputStreamWriter.close();
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }

    /* 编写一个 方法 ，可以将文件中的信息 给 读取到程序中 */
    public void io_input_test() throws IOException {
        File file = new File("d:\\test-utf8.ini");
        FileInputStream fileInputStream = new FileInputStream(file);
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
        StringBuffer buffer = new StringBuffer();
        while (inputStreamReader.ready()) {
            buffer.append((char) inputStreamReader.read());
        }
        fileInputStream.close();
        System.out.println(buffer.toString());
    }

}
